Roller

	This plug-in is written in Python 2.7 for GIMP v2.10. It is recommended for computers with 16 gigabytes or more of RAM. Roller is designed to create image compositions like wallpaper, image boards, collages, etc. Roller 1 and Roller 2 presets are incompatible with Roller 3.

Basics
	Steps

	Steps are linear and dependent on successiveness. Consecutive steps depend upon previous steps. Typically a step will create a layer, but sometimes a step will only influence the steps that follow it. As steps are rendered, they are added to the composition at the top of the layer stack. In the navigation lists, the steps are ordered consecutively. A step at the top of a navigation list is performed before a step below it. Layers from steps at the bottom of a navigation list end up on top of layers made from steps at the top of a list.

    Preview and Plan Buttons
    
    The Preview and Plan buttons produce results up to their step. Changes to a previous step cause its latter steps to have invalid results, and thus, cause them to redo themselves when they already have production.

	Composition

	There are several layers to be aware of when creating a composition. They are the backdrop-image, backdrop-style, gradient light, and a model layer group.

	Every composition has a backdrop-image layer. This layer serves as a potential backdrop for the composition and sometimes provides material for a backdrop-style layer.

	A backdrop-style layer is positioned above the backdrop-image layer. The style layer's purpose is to add interest to the backdrop of the composition. Some of the backdrop-styles require material from the backdrop-image to produce a result. If the backdrop-image layer has material, the backdrop-image's mask applies to the backdrop-style.

	The gradient light is a gradient that is applied to multiple layers in a render. It's purpose is to simulate a light source, but it has other uses, such as mixing up a backdrop-style, or unifying a composition.

	The gradient light's option, Decoration, refers to plaque, fringe, and border material.

	Model groups come in two designs, a custom cell and a grid. Model groups have multiple steps. Both designs have very similar steps, but differ in how image material is placed. A custom cell is useful for placing one image at a time, while the grid model is useful for placing multiple images on a layer.

User-Interface

	Views are designed to be an easily canceled or accepted. Pressing the Esc key will cancel any window, and the Return key will accept a window depending on the widget in focus. Views dynamically resize so that screen-space is not wasted, and Roller doesn't have to use scroll-bars. A view can be stretched, but the stretch won't stick during a window resize. When Roller adds an option groups during its first appearance, the draw process will cause a window flicker.

How to Add Frames to the Frame Cover Image-effect

	When Roller is first started, the Frame Cover image-effect reads '.png' file types from Roller's Frame folder. You can add additional frames to this folder. In order to add your own frames, they must be the '.png' file type.

	Thank you dinasset from 'gimpchat.com' for sharing the frame files.

Errors And Limitations To Be Aware Of

	* Opening and closing images in GIMP while the plug-in is running will likely make it unstable.

	* Ellipse and hexagonal shaped cells are double-spaced. Every other cell in their cell arrangement is empty.

	* Putting too many rows and columns into a composition grid may result in a crash. GTK has its limitations, and Roller doesn't compensate for a grossly large scale. The Merge Cells window will be the slowest cell window drawing cells. I was able to create a grid of 15 rows and 15 columns without too much of a delay. So patience may be in order if you wish to create a larger grid of cells.

	* I recommend having the Layer Dock visible while running the plug-in as this dock will show GIMP working as the plug-in is running.

	* If external files are referenced, the files are opened during a render or a preview process. GIMP will show the loading process in its status bar at the bottom of the GIMP window.

	* Two running Roller scripts will likely crash into each other.

	* When the script is run for the first time, Python creates ".pyc" type files within the module folder. These files help the code run faster in the Python interpreter. The files are re-created if they go missing, so no worries about deleting them.

	* In Average Color production there will sometimes be added transparency to the output where there should be none. The 'plug-in-pixelize2' is the cause, and I am unable to find a work-around. I believe this problem is an image-type compatibility problem with 'pixelize2' and is the exception and not the rule.

    * Dynamic brushes do not work with the functions that require a brush stroke. These would be Brush Punch, Brush Edge, and Fringe.

Links

	I post the latest version of my GIMP plug-ins on GitHub under my GummyCowboy user-name: github.com/gummycowboy

	These are GIMP-related sites worth visiting:

	* Forum:
	gimplearn.net
	gimpchat.com
	gimp-forum.net
	gimpusers.com

	* Plug-in:
	gimpscripts.net
	sourceforge.net/projects/gimp-tools
	magentacloud.de/share/x2qpdqu2g4#$/Plug-Ins
	kmarkku.arkku.net/Path_modify_files/Gimp_master.html
	gmic.eu
	gitlab.gnome.org/GNOME/gimp/-/tree/gimp-2-10
	gimpbook.com/scripting/

	* Other:
	gimp-forum.net/Thread-Paths-Basics
	alessandrofrancesconi.it/projects/bimp
	discuss.pixls.us

	* GEGL:
	gegl.org/operations
	gimpchat.com/viewtopic.php?f=9&t=18040
	gimp-forum.net/Thread-Scripting-GEGL-operations
	samjcreations.blogspot.com/2020/09/est-une-bibliotheque-image-libre-tres.html
	gimpchat.com/viewtopic.php?f=10&t=19463

	* Frames:
	gimpchat.com/viewtopic.php?f=9&t=11486

	* Wrap an image around an object:
	youtube.com/watch?v=rUp3-XxZl0E
	youtube.com/watch?v=qoTjcXR_bFk

	* PyGTK
	Reference Manual:
	wiki.python.org.br/DocumentacaoPython?action=AttachFile&do=get&target=ref.pdf

	Documentation:
	library.isr.ist.utl.pt/docs/pygtk2reference/

	* Tutorial:
	developer.ibm.com/articles/os-autogimp/
    littlewebhut.com/gimp/

	* Python
	www.gimp.org/docs/python/
	discuss.pixls.us/t/gmic-tutorial-fragments/24289/63
	gmic-py.readthedocs.io/en/latest/gettingstarted.html#run-a-simple-g-mic-effect-and-view-it
	inventwithpython.com/bigbookpython/
	docs.python.org/3/library/2to3.html
    projects.raspberrypi.org/en/codeclub/python-module-1

	* Get GIMP ("GNU Image Manipulation Program")
	gimp.org

	* YouTube
	Davies Media Design
	youtube.com/channel/UCq79-lfj2w7oRXGRcOP2B7g

Special Thanks

	Many thanks to the free programs Notepad++ (for easy editting), Visual Studio Code (for syntax checking), and PyCharm (for detailed code analysis). Each is a great Python code editor. Also, I would like to give a special thanks to every GIMP plug-in author for sharing their inspirational work.

Stairway to Heaven

    And as we wind on down the road
    Our shadows taller than our soul
    There walks a lady we all know
    Who shines white light and wants to show
    How everything still turns to gold
    And if you listen very hard
    The tune will come to you at last
    When all are one and one is all
    To be a rock and not to roll

     Led Zeppelin
